home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
program
/
wsc4d21.zip
/
EASY_PGM.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1997-06-05
|
8KB
|
314 lines
unit Easy_pgm;
interface
uses
DisplayUnit,
SysUtils, WinTypes, WinProcs,
Messages, Classes, Graphics, Controls,
Forms, Dialogs, Menus,
wsc, ExtCtrls, StdCtrls;
type
TEasy = class(TForm)
MainMenu: TMainMenu;
menuLine: TMenuItem;
menuOnLine: TMenuItem;
menuOffline: TMenuItem;
menuExit: TMenuItem;
menuChange: TMenuItem;
menuPort: TMenuItem;
menuBaud: TMenuItem;
menuCOM1: TMenuItem;
menuCOM2: TMenuItem;
menuCOM3: TMenuItem;
menuCOM4: TMenuItem;
menu300: TMenuItem;
menu1200: TMenuItem;
menu2400: TMenuItem;
menu4800: TMenuItem;
menu9600: TMenuItem;
menu19200: TMenuItem;
menu38400: TMenuItem;
menu57600: TMenuItem;
Timer: TTimer;
Debug: TMenuItem;
Memo: TMemo;
procedure FormCreate(Sender: TObject);
procedure menuOnLineClick(Sender: TObject);
procedure menuOfflineClick(Sender: TObject);
procedure menuCOM1Click(Sender: TObject);
procedure menuCOM2Click(Sender: TObject);
procedure menuCOM3Click(Sender: TObject);
procedure menuCOM4Click(Sender: TObject);
procedure menuExitClick(Sender: TObject);
procedure menu300Click(Sender: TObject);
procedure menu1200Click(Sender: TObject);
procedure menu2400Click(Sender: TObject);
procedure menu4800Click(Sender: TObject);
procedure menu9600Click(Sender: TObject);
procedure menu19200Click(Sender: TObject);
procedure menu38400Click(Sender: TObject);
procedure menu57600Click(Sender: TObject);
procedure TimerTimer(Sender: TObject);
procedure KeyPress(Sender: TObject; var Key: Char);
procedure DebugClick(Sender: TObject);
private
{ Private declarations }
Port : Integer;
Baud : Integer;
Parity : Integer;
DataBits : Integer;
StopBits : Integer;
public
{ Public declarations }
end ;
var
Easy: TEasy;
implementation
{$R *.DFM}
procedure TEasy.FormCreate(Sender: TObject);
var
I : Integer;
Code : Integer;
begin
(* initialize parameters *)
Port := COM1;
Baud := Baud19200;
Parity := NoParity;
DataBits := WordLength8;
StopBits := OneStopBit;
(* initialize menu settings *)
menuOffLine.Checked := true;
menuCOM1.Checked := true;
menu19200.Checked := true
end;
procedure TEasy.menuOnLineClick(Sender: TObject);
var
Code : Integer;
begin
(* initialize WSC *)
Code := SioReset(Port,1024,512);
if Code < 0 then begin
DisplayString(Memo,Format('Error %d: ',[Code]));
DisplayError(Memo, Code);
exit
end;
(* update menu settings *)
Easy.Caption := 'EASY: COM' + Chr($31+Port) + ' Online';
menuOnLine.Checked := true;
menuOffLine.Checked := false;
menuChange.Enabled := false;
Code := SioBaud(Port,Baud);
Code := SioParms(Port, Parity, StopBits, DataBits);
Code := SioDTR(Port,'S');
Code := SioRTS(Port,'S')
end;
procedure TEasy.menuOfflineClick(Sender: TObject);
var
Code : Integer;
begin
Easy.Caption := 'EASY: Offline';
DisplayString(Memo,'Shutting down COM port');
menuOnLine.Checked := false;
menuOffLine.Checked := true;
menuChange.Enabled := true;
Code := SioDone(Port)
end;
procedure TEasy.menuCOM1Click(Sender: TObject);
begin
menuCOM1.Checked := true;
menuCOM2.Checked := false;
menuCOM3.Checked := false;
menuCOM4.Checked := false;
Port := COM1
end;
procedure TEasy.menuCOM2Click(Sender: TObject);
begin
menuCOM1.Checked := false;
menuCOM2.Checked := true;
menuCOM3.Checked := false;
menuCOM4.Checked := false;
Port := COM2
end;
procedure TEasy.menuCOM3Click(Sender: TObject);
begin
menuCOM1.Checked := false;
menuCOM2.Checked := false;
menuCOM3.Checked := true;
menuCOM4.Checked := false;
Port := COM3
end;
procedure TEasy.menuCOM4Click(Sender: TObject);
begin
menuCOM1.Checked := false;
menuCOM2.Checked := false;
menuCOM3.Checked := false;
menuCOM4.Checked := true;
Port := COM4
end;
procedure TEasy.menuExitClick(Sender: TObject);
var
Code : Integer;
begin
Code := SioDone(Port);
Application.Terminate;
end;
procedure TEasy.menu300Click(Sender: TObject);
begin
menu300.Checked := true;
menu1200.Checked := false;
menu2400.Checked := false;
menu4800.Checked := false;
menu9600.Checked := false;
menu19200.Checked := false;
menu38400.Checked := false;
menu57600.Checked := false;
Baud := Baud300
end;
procedure TEasy.menu1200Click(Sender: TObject);
begin
menu300.Checked := false;
menu1200.Checked := true;
menu2400.Checked := false;
menu4800.Checked := false;
menu9600.Checked := false;
menu19200.Checked := false;
menu38400.Checked := false;
menu57600.Checked := false;
Baud := Baud1200
end;
procedure TEasy.menu2400Click(Sender: TObject);
begin
menu300.Checked := false;
menu1200.Checked := false;
menu2400.Checked := true;
menu4800.Checked := false;
menu9600.Checked := false;
menu19200.Checked := false;
menu38400.Checked := false;
menu57600.Checked := false;
Baud := Baud2400
end;
procedure TEasy.menu4800Click(Sender: TObject);
begin
menu300.Checked := false;
menu1200.Checked := false;
menu2400.Checked := false;
menu4800.Checked := true;
menu9600.Checked := false;
menu19200.Checked := false;
menu38400.Checked := false;
menu57600.Checked := false;
Baud := Baud4800
end;
procedure TEasy.menu9600Click(Sender: TObject);
begin
menu300.Checked := false;
menu1200.Checked := false;
menu2400.Checked := false;
menu4800.Checked := false;
menu9600.Checked := true;
menu19200.Checked := false;
menu38400.Checked := false;
menu57600.Checked := false;
Baud := Baud9600
end;
procedure TEasy.menu19200Click(Sender: TObject);
begin
menu300.Checked := false;
menu1200.Checked := false;
menu2400.Checked := false;
menu4800.Checked := false;
menu9600.Checked := false;
menu19200.Checked := true;
menu38400.Checked := false;
menu57600.Checked := false;
Baud := Baud19200
end;
procedure TEasy.menu38400Click(Sender: TObject);
begin
menu300.Checked := false;
menu1200.Checked := false;
menu2400.Checked := false;
menu4800.Checked := false;
menu9600.Checked := false;
menu19200.Checked := false;
menu38400.Checked := true;
menu57600.Checked := false;
Baud := Baud38400
end;
procedure TEasy.menu57600Click(Sender: TObject);
begin
menu300.Checked := false;
menu1200.Checked := false;
menu2400.Checked := false;
menu4800.Checked := false;
menu9600.Checked := false;
menu19200.Checked := false;
menu38400.Checked := false;
menu57600.Checked := true;
Baud := Baud57600
end;
procedure TEasy.TimerTimer(Sender: TObject);
var
I, Code : Integer;
S : String;
CharCount : Integer;
begin
S := '';
CharCount := 0;
{Gather all incoming}
for I := 1 to 128 do begin
Code := SioGetc(Port);
if Code < 0 then break;
if Chr(Code) <> Chr(13) then begin
{got character (other than CR)}
Inc(CharCount);
if Chr(Code) = Chr(10) then break;
S := S + Chr(Code);
end
end; {for}
{display}
if CharCount > 0 then DisplayString(Memo,S);
if Chr(Code) = Chr(10) then DisplayChar(Memo,Chr(10))
end;
procedure TEasy.KeyPress(Sender: TObject; var Key: Char);
var
Code : Integer;
begin
Code := SioPutc(Port,Key)
end;
procedure TEasy.DebugClick(Sender: TObject);
var
S : String;
begin
Str(SioInfo('?'), S);
DisplayLine(Memo,S + ' seconds until expiration')
end;
end.